SAS: Proc PRINT简介

您所在的位置:网站首页 sas 变量排序 SAS: Proc PRINT简介

SAS: Proc PRINT简介

2024-06-03 10:33| 来源: 网络整理| 查看: 265

1. 作用

输出数据集中的观测

 

2. 语法

语法如下

 PROC PRINT ;

也就是可以不加任何参数,最简单的形式即 PROC PRINT;

 

3. 示例

样本数据采用Sashelp中的数据集Class,原始数据如图1所示:

图1 原始数据 3.1 输出全部数据

默认会输出数据集的全部观测和全部变量,并在最左边加一列Obs列,表示行号(Observation number)

程序如下:

proc print data=Sashelp.Class; run;

输出如下:

图2

 

3.2 只输出部分变量

可以使用var语句来只输出部分变量,比如只输出姓名和身高:

proc print data=Sashelp.Class; var Name Height; run; 图3

 

3.3 只输出部分观测 3.3.1 使用Where语句

可以使用where语句指定一些条件

比较

比如输出年龄大于14岁的(注意这里可以使用gt, lt, eq, ge,le,ne,并且即可以用于数值型,也可以用于比较字符型,比较字符型时,加上单引号)

proc print data=Sashelp.Class; where Age gt 14; run; 图4

 

子集判断

输出年龄为13、14岁的:

proc print data=Sashelp.Class; where Age in (13, 14); run;

 

包含

使用CONTAINS或者?, 输出姓名中包含‘斯’的:

proc print data=Sashelp.Class; where Name CONTAINS '斯'; run; 图5

 

多个条件

可以使用AND或者OR控制多个条件,例如输出年龄大于14岁,并且体重小于120或者身高小于70的

proc print data=Sashelp.Class; where Age gt 14 and (Weight lt 120 or Height lt 70); run; 图6

 

3.3.2 使用FIRSTOBS和OBS

FIRSTOBS和OBS是全局选项,FIRSTOBS表示从第几行开始默认值为1; OBS表示到第几行结束,默认值分别MAX。一旦设置之后,影响整个程序所有的PROC PRINT。

例如只输出10-12行:

OPTIONS FIRSTOBS=10; OPTIONS OBS=12; proc print data=Sashelp.Class; run; 图7

 

当然,也可以在print选项中指定,那么它只影响当前的PRINT:

OPTIONS FIRSTOBS=10; OPTIONS OBS=12; proc print data=Sashelp.Class (FIRSTOBS=1 OBS=5); run; 图8

 

3.4 排序

使用PROC SORT进行排序,其实排序已经超出了PROC PRINT范畴,它会对数据进行原地排序(如果指定了OUT选项,才会将排序后的数据放到OUT指定的数据集中)。 例如根据年龄和身高进行排序,排序后的数据存放到Work.srtdClss中:

proc sort data=Sashelp.Class out=Work.srtdClss; by Age Height; run; proc print data=Work.srtdClss; run; 图9

 

3.5 求和

使用SUM语句来求年龄15岁的人的身高之和、体重之和:

proc print data=Sashelp.Class; where age eq 15; SUM Height Weight; run; 图10

 

3.6 分组

使用BY语句进行分组,按照年龄分组,求每一组人的身高之和、体重之和,只要15岁以上的数据,这里要求已经排好序(如果不排好序,是不会进行真正的分组的):

proc print data=Work.srtdClss; VAR age Height Weight; BY age; WHERE age ge 15; SUM Height Weight; run;

 

图11

 

注意,上面的输出中是分了两组的,一组是15岁的,一组是16岁的。输出中表格的Obs列不太好看,可以使用ID语句代替它

proc print data=Work.srtdClss; VAR age Height Weight; BY age; WHERE age ge 15; SUM Height Weight; ID age; run; 图12

 

上面这个例子中,age列出现了两次,是因为在VAR语句和ID语句中都出现了,可以去掉VAR语句中的age。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3